package com.ruoyi.merchant.service;

import java.util.List;
import com.ruoyi.merchant.domain.dto.CouponCreateDTO;
import com.ruoyi.merchant.domain.dto.CouponQueryDTO;
import com.ruoyi.merchant.domain.dto.CouponUpdateDTO;
import com.ruoyi.merchant.domain.vo.CouponStatisticsVO;
import com.ruoyi.merchant.domain.vo.CouponVO;

/**
 * 优惠券管理Service接口
 * 
 * @author xperia
 */
public interface ICouponManagementService2 {
    
    /**
     * 查询优惠券列表
     * 
     * @param queryDTO 查询条件
     * @return 优惠券列表
     */
    List<CouponVO> selectCouponList(CouponQueryDTO queryDTO);

    /**
     * 查询优惠券详情
     * 
     * @param couponId 优惠券ID
     * @return 优惠券信息
     */
    CouponVO selectCouponById(String couponId);

    /**
     * 新增优惠券
     * 
     * @param createDTO 优惠券信息
     * @return 结果
     */
    int insertCoupon(CouponCreateDTO createDTO);

    /**
     * 修改优惠券
     * 
     * @param updateDTO 优惠券信息
     * @return 结果
     */
    int updateCoupon(CouponUpdateDTO updateDTO);

    /**
     * 删除优惠券
     * 
     * @param couponId 优惠券ID
     * @return 结果
     */
    int deleteCoupon(String couponId);

    /**
     * 发布优惠券（审核通过后发布）
     * 
     * @param couponId 优惠券ID
     * @return 结果
     */
    int publishCoupon(String couponId);

    /**
     * 暂停优惠券
     * 
     * @param couponId 优惠券ID
     * @return 结果
     */
    int pauseCoupon(String couponId);

    /**
     * 恢复优惠券
     * 
     * @param couponId 优惠券ID
     * @return 结果
     */
    int resumeCoupon(String couponId);

    /**
     * 统计优惠券数据
     * 
     * @return 统计数据
     */
    CouponStatisticsVO getCouponStatistics();
}

